const
TEACH = "В. И. Пупкин",
subjs = { // В конце последней строки запятой нет!
   a: "Алгебра и начала анализа",
   g: "Геометрия",
   v: "Вероятность и статистика",
   e: "Подготовка к ЕГЭ"
},
PUP = [ // В конце последней строки запятой нет!
   "Иван А",
   "Анна Бо",
   "Анна Бр"
].map(p => p.replace(' ', '_'));

// Даты и наименования отметок промежуточной аттестации (по возрастанию)
// Все даты на новый учебный год изменяются, начиная с 1 августа!
// За первое полугодие - 1 янв, за второе - 1 июл, за год - 2 июл
// Если дата в первом полугодии, то lastYear заменить на (lastYear - 1)
// В конце последней строки запятой нет!
let nowDT = new Date(), nowY = nowDT.getFullYear(), nowMon = nowDT.getMonth(),
 lastYear = (nowMon < 7 ? nowY : nowY + 1); // год оконч уч года
const DOP = {
   [lastYear+"-01-01"]: "I&nbsp;п",
   [lastYear+"-07-01"]: "II&nbsp;п",
   [lastYear+"-07-02"]: "Год"
},

// Даты начала периодов промежуточной аттестации (номера строк, начиная с 0,
// объекта DOP); например, второе полугодие (строка 1) начинается после
// окончания первого (строка 0), поэтому для второго полугодия значение
// в данном массиве будет равно 0. Если начало периода совпадает с началом
// учебного года, значение указывается равным -1
START = [-1, 0, -1];
